package rescsa.gob.pe.seguridad.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
import org.springframework.stereotype.Repository;

import rescsa.gob.pe.constants.PgSqlQuerys;
import rescsa.gob.pe.constants.RowMapperConstants;
import rescsa.gob.pe.seguridad.bean.RolBEAN;
import rescsa.gob.pe.seguridad.bean.UsuarioBEAN;


@Repository
public class RolDAO {
	
	private SimpleJdbcTemplate simpleJdbcTemplate;
    private JdbcTemplate jdbcTemplate;
	private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
	
	@Autowired
	public void init(DataSource dataSource) {
		this.simpleJdbcTemplate = new SimpleJdbcTemplate(dataSource);
		this.jdbcTemplate=new JdbcTemplate(dataSource);
		this.namedParameterJdbcTemplate=new NamedParameterJdbcTemplate(dataSource);
	}
	
	
	
//	obtener los roles por usuario
	@SuppressWarnings("unchecked")
	public List<RolBEAN> listar ( UsuarioBEAN user){
		StringBuffer sqlb= new StringBuffer(PgSqlQuerys.OBTENER_ROLES_POR_USUARIO);
//		if(user.getId_usuario()!=0){
//			sqlb.append( " and ur.id_usuario ="+user.getId_usuario());
//		}
		
		if(user.getC_usuario()!=0){
			sqlb.append( " and ur.c_usuario ="+user.getC_usuario());
		}
		String sql = sqlb.toString();
		
		return this.jdbcTemplate.query(sql, new RowMapperConstants.RolMapper());
	}
	
	@SuppressWarnings("unchecked")
	public List<RolBEAN> listar(RolBEAN rol){
		String sql = PgSqlQuerys.OBTENER_ROLES;
	
		Map<String, Object> parametros= new HashMap<String, Object>();		
		parametros.put("p_id_rol", rol.getC_rol());
		
		return this.simpleJdbcTemplate.query(sql, new RowMapperConstants.RolMapper(),parametros);
	}
}
